AWK একটি স্ক্রিপ্টিং ভাষা যা ডেটা প্রসেসিংয়ের জন্য ব্যবহৃত হয়, এবং এটি বিভিন্ন ভেরিয়েবলস এবং ডেটা টাইপস সমর্থন করে। ভেরিয়েবলসকে AWK এর কার্যক্রমে বিভিন্ন মান সংরক্ষণ এবং ব্যবহার করার জন্য ব্যবহার করা হয়।
AWK এ ভেরিয়েবলস ডায়নামিক হয়, অর্থাৎ আপনি যেকোন সময় তাদের মান পরিবর্তন করতে পারেন। ভেরিয়েবলস ঘোষণা করার জন্য কোন নির্দিষ্ট সিনট্যাক্স নেই; আপনি সরাসরি ভেরিয়েবলে মান সেট করতে পারেন।
একটি ভেরিয়েবলকে সাধারণত নিম্নলিখিতভাবে সংজ্ঞায়িত করা হয়:
variable_name = value
awk '{ total += $1 } END { print total }' filename.txt
এখানে, total
একটি ভেরিয়েবল যা প্রথম কলামের মানগুলোর যোগফল সংরক্ষণ করে।
AWK কিছু বিল্ট-ইন ভেরিয়েবল সরবরাহ করে যা প্রোগ্রামারদের জন্য বিশেষভাবে কার্যকরী:
$1
প্রথম কলাম, $2
দ্বিতীয় কলাম ইত্যাদি নির্দেশ করে।AWK এ ডেটা টাইপস এর প্রকারভেদ সাধারণত নিম্নরূপ:
সংখ্যা: AWK এ সংখ্যাকে স্বয়ংক্রিয়ভাবে শনাক্ত করা হয়। আপনি যে কোন সংখ্যা ভেরিয়েবলে নির্দিষ্ট করতে পারেন এবং গাণিতিক অপারেশন করতে পারেন। উদাহরণ:
awk 'BEGIN { x = 5; y = 10; sum = x + y; print sum }'
স্ট্রিং: AWK স্ট্রিং ডেটা টাইপকেও সমর্থন করে। স্ট্রিংস সাধারণত ডাবল কোটেশন মার্কের মধ্যে রাখা হয়। উদাহরণ:
awk 'BEGIN { name = "John"; print "Hello, " name }'
AWK একটি অত্যন্ত নমনীয় ভাষা যা ভেরিয়েবলস এবং ডেটা টাইপস এর কার্যকর ব্যবহার সমর্থন করে। এটি ব্যবহারকারীদের জন্য তথ্য সংগ্রহ এবং প্রক্রিয়াকরণে সাহায্য করে, যাতে তারা দ্রুত ফলাফল পেতে পারেন। AWK এর ভেরিয়েবলস এবং ডেটা টাইপস এর ধারণা ব্যবহার করে, আপনি আপনার স্ক্রিপ্টে শক্তিশালী লজিক এবং কার্যকারিতা যোগ করতে পারেন।
ডেটা টাইপ প্রোগ্রামিং ভাষার একটি মৌলিক উপাদান, যা বিভিন্ন ধরনের ডেটাকে সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহৃত হয়। প্রিমিটিভ ডেটা টাইপগুলি মূল ডেটা টাইপ, যা সাধারণত ভাষার মৌলিক কাঠামোর অংশ হিসেবে ব্যবহৃত হয়। এখানে আমরা দুটি প্রধান প্রিমিটিভ ডেটা টাইপ: String এবং Numeric সম্পর্কে আলোচনা করব।
String হল একটি ডেটা টাইপ যা অক্ষরের একটি সিরিজ (character sequence) সংরক্ষণ করে। এটি সাধারণত টেক্সট তথ্য উপস্থাপন করতে ব্যবহৃত হয়। একটি String ডেটা টাইপ বিভিন্ন অক্ষর যেমন অক্ষর, সংখ্যা, চিহ্ন, এবং স্পেসের সমন্বয়ে গঠিত হতে পারে।
একটি String তৈরি করা:
name = "Alice"
String এর দুটি যোগফল করা:
greeting = "Hello, " + name
String এর দৈর্ঘ্য বের করা:
length = len(greeting) # ফলস্বরূপ: 12
Numeric ডেটা টাইপগুলি সংখ্যা উপস্থাপন করতে ব্যবহৃত হয়। এটি সাধারণত দুটি প্রধান ধরনের সংখ্যা অন্তর্ভুক্ত করে: পূর্ণসংখ্যা (integers) এবং ভগ্নাংশ সংখ্যা (floating-point numbers)।
একটি পূর্ণসংখ্যা তৈরি করা:
age = 25
একটি ভগ্নাংশ সংখ্যা তৈরি করা:
height = 5.9
গাণিতিক অপারেশন করা:
total = age + 5 # ফলস্বরূপ: 30
average_height = (height + 6.0) / 2 # ফলস্বরূপ: 5.95
প্রিমিটিভ ডেটা টাইপস, যেমন String এবং Numeric, প্রোগ্রামিং ভাষার মৌলিক উপাদান। Strings টেক্সট তথ্য উপস্থাপন করতে ব্যবহৃত হয়, যেখানে Numeric ডেটা টাইপগুলি সংখ্যা উপস্থাপন করতে ব্যবহৃত হয়। এই ডেটা টাইপগুলির বৈশিষ্ট্য এবং অপারেশনগুলি প্রোগ্রামিংয়ে মৌলিক কাজগুলি সম্পাদনে সহায়তা করে, এবং তারা প্রোগ্রামারদের জন্য ডেটার সঠিক ব্যবহার নিশ্চিত করে।
AWK তে ভেরিয়েবল ডিক্লারেশন এবং Initialization একটি মৌলিক কিন্তু গুরুত্বপূর্ণ ধারণা। ভেরিয়েবল হল তথ্য সংরক্ষণের জন্য একটি নামকৃত স্থান, যেখানে আপনি ডেটা রাখতে এবং পরবর্তীতে ব্যবহার করতে পারেন। AWK তে ভেরিয়েবল তৈরি এবং ব্যবহার করা খুব সহজ।
AWK তে ভেরিয়েবল ডিক্লারেশন করার জন্য কোনও বিশেষ কীওয়ার্ড প্রয়োজন হয় না। আপনি সরাসরি ভেরিয়েবল নাম লিখে তা ব্যবহারের সময় ডেটা অ্যাসাইন করতে পারেন। AWK স্বয়ংক্রিয়ভাবে এটি সনাক্ত করে এবং ভেরিয়েবল হিসেবে ব্যবহার করে।
# ভেরিয়েবল ডিক্লারেশন
name = "Alice"
age = 30
এখানে, name
এবং age
হল দুইটি ভেরিয়েবল, যেখানে যথাক্রমে "Alice" এবং 30 মান অ্যাসাইন করা হয়েছে।
Initialization হল একটি ভেরিয়েবলের জন্য একটি প্রাথমিক মান সেট করা। AWK তে ভেরিয়েবল initialize করার সময়, আপনি সরাসরি ভেরিয়েবলের নাম লিখে মান সেট করতে পারেন।
# Initialization
sum = 0 # একটি সংখ্যার যোগফল শুরুতে শূন্য
count = 1 # কাউন্টের জন্য একটি প্রাথমিক মান
AWK তে ভেরিয়েবল ব্যবহার করার কিছু উদাহরণ নিচে উল্লেখ করা হলো:
সাধারণ ভেরিয়েবল ব্যবহার:
awk '{
sum += $1 # প্রথম কলামের মানের যোগফল
count++ # সংখ্যা গোনা
} END {
average = sum / count # গড় বের করা
print average # গড় প্রিন্ট করা
}' data.txt
শর্তাধীন ভেরিয়েবল ব্যবহার:
awk '{
if ($1 > 50) {
status = "Pass"
} else {
status = "Fail"
}
print $1, status
}' scores.txt
অবজেক্ট ভেরিয়েবল:
AWK তে ভেরিয়েবল ব্যবহার করে একটি অবজেক্ট তৈরি করা:
awk 'BEGIN {
person["name"] = "Alice"
person["age"] = 30
print person["name"], person["age"]
}'
AWK তে ভেরিয়েবল ডিক্লারেশন এবং Initialization একটি গুরুত্বপূর্ণ অংশ যা ব্যবহারকারীদের ডেটা সংরক্ষণ এবং প্রক্রিয়াকরণের জন্য সহায়তা করে। এটি ভেরিয়েবল তৈরি করতে এবং প্রাথমিক মান সেট করতে সক্ষম, যা বিভিন্ন বিশ্লেষণাত্মক কাজকে সহজ করে তোলে। AWK এর মাধ্যমে ভেরিয়েবল ব্যবহার করে ডেটা বিশ্লেষণকে আরও কার্যকরী এবং ফলপ্রসূ করা সম্ভব।
AWK এর কিছু বিল্ট-ইন ভেরিয়েবল রয়েছে, যা ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য অত্যন্ত কার্যকরী। নিচে এই ভেরিয়েবলগুলোর বর্ণনা, কাজ এবং উদাহরণ দেওয়া হলো:
NR
বর্তমান প্রক্রিয়া করা রেকর্ডের সংখ্যা নির্দেশ করে। এটি প্রতিটি রেকর্ড পড়ার সময় বৃদ্ধি পায়।NR
ব্যবহার করে আপনি জানতে পারেন যে মোট কতগুলি রেকর্ড (লাইন) প্রক্রিয়া হয়েছে।উদাহরণ:
awk '{print NR, $0}' filename.txt
এখানে প্রতিটি লাইনের সাথে তার রেকর্ড নম্বর প্রদর্শিত হবে।
NF
বর্তমান রেকর্ডের মোট ফিল্ডের সংখ্যা নির্দেশ করে। এটি একটি লাইনে কতগুলি ফিল্ড আছে তা চিহ্নিত করে।NF
ব্যবহার করে আপনি জানতে পারেন একটি রেকর্ডে মোট কতটি ফিল্ড রয়েছে।উদাহরণ:
awk '{print NF}' filename.txt
এখানে প্রতিটি লাইনে ফিল্ডের সংখ্যা প্রদর্শিত হবে।
FNR
বর্তমান ফাইলের মধ্যে প্রক্রিয়া করা রেকর্ডের সংখ্যা নির্দেশ করে। এটি নতুন ফাইলের জন্য শূন্য থেকে শুরু হয়।FNR
ব্যবহার করে আপনি একটি নির্দিষ্ট ফাইলে রেকর্ড সংখ্যা পেতে পারেন।উদাহরণ:
awk '{print FNR, $0}' file1.txt file2.txt
এখানে file1.txt
এবং file2.txt
উভয় ফাইলের জন্য রেকর্ড সংখ্যা প্রদর্শিত হবে।
FS
ইনপুট ফাইলের ফিল্ড সেপারেটরের জন্য ব্যবহৃত হয়। ডিফল্টরূপে এটি স্পেস বা ট্যাব।FS
পরিবর্তন করে আপনি ফিল্ড সেপারেটরকে কাস্টমাইজ করতে পারেন।উদাহরণ:
awk 'BEGIN {FS=","} {print $1}' filename.csv
এখানে CSV ফাইলের প্রথম ফিল্ড প্রিন্ট হবে, যেখানে ফিল্ডগুলি কমা দ্বারা পৃথক করা হয়েছে।
RS
ইনপুট রেকর্ড সেপারেটরের জন্য ব্যবহৃত হয়। ডিফল্টরূপে এটি নতুন লাইন।RS
পরিবর্তন করে আপনি কীভাবে ইনপুট ডেটা রেকর্ডে বিভক্ত হবে তা নির্ধারণ করতে পারেন।উদাহরণ:
awk 'BEGIN {RS=","} {print}' filename.txt
এখানে ফাইলটি কমা দ্বারা বিভক্ত রেকর্ড হিসেবে পড়বে।
OFS
আউটপুট ফিল্ড সেপারেটর নির্দেশ করে, যা আউটপুটে ফিল্ডগুলির মধ্যে ব্যবহৃত হবে।OFS
ব্যবহার করে আউটপুটের ফিল্ডগুলির মধ্যে স্পেস, কমা, বা অন্য কোনো চিহ্ন ব্যবহার করা যায়।উদাহরণ:
awk 'BEGIN {OFS=";"} {print $1, $2}' filename.txt
এখানে আউটপুটের ফিল্ডগুলি সেমিকোলন দ্বারা পৃথক হবে।
ORS
আউটপুট রেকর্ড সেপারেটর নির্দেশ করে, যা রেকর্ডগুলির মধ্যে ব্যবহৃত হবে।ORS
পরিবর্তন করে, আপনি আউটপুট রেকর্ডগুলির মধ্যে ব্যবধান পরিবর্তন করতে পারেন।উদাহরণ:
awk 'BEGIN {ORS=" | "} {print $0}' filename.txt
এখানে আউটপুটে প্রতিটি লাইনের মধ্যে " | " সেপারেটর যুক্ত হবে।
এই বিল্ট-ইন ভেরিয়েবলগুলি AWK এর কার্যকারিতা বৃদ্ধি করতে এবং ডেটা বিশ্লেষণের কাজকে আরও সহজ ও কার্যকর করতে সহায়ক। এই ভেরিয়েবলগুলি ব্যবহার করে আপনি প্রয়োজনীয় তথ্য বের করতে এবং ডেটা প্রসেসিংয়ে সময় সাশ্রয় করতে পারবেন।
AWK তে User-Defined Variables ব্যবহারকারীদের নিজস্ব ভেরিয়েবল তৈরি করার সুযোগ দেয়, যা ডেটা প্রক্রিয়াকরণে ব্যবহার করা হয়। এই ভেরিয়েবলগুলি ব্যবহার করে আপনি ডেটাকে স্টোর, প্রক্রিয়া এবং পরিচালনা করতে পারেন। ব্যবহারকারীর ভেরিয়েবল তৈরি করা খুবই সহজ এবং এটি AWK স্ক্রিপ্টের কার্যকারিতা বাড়ায়।
AWK তে ব্যবহারকারীরা ভেরিয়েবল ঘোষণা করতে এবং সেট করতে পারেন। উদাহরণস্বরূপ:
awk '{count += 1} END {print "Total lines:", count}' filename.txt
এখানে count
একটি ব্যবহারকারীর ভেরিয়েবল, যা লাইন সংখ্যা গুনতে ব্যবহার করা হয়েছে।
ব্যবহারকারীরা ভেরিয়েবলকে AWK এর মধ্যে বিভিন্নভাবে ব্যবহার করতে পারেন:
গণনা: ব্যবহারকারী ভেরিয়েবল ব্যবহার করে গাণিতিক অপারেশন করতে পারেন।
awk '{sum += $1} END {print "Sum:", sum}' data.txt
শর্তাধীন কার্যক্রম: ভেরিয়েবল ব্যবহার করে শর্ত তৈরি করতে পারেন।
awk '{if ($1 > threshold) count += 1} END {print "Count:", count}' threshold=10 data.txt
ব্যবহারকারীরা ভেরিয়েবল ব্যবহার করে ইনপুট এবং আউটপুট প্রক্রিয়া করতে পারেন। উদাহরণস্বরূপ:
awk -v prefix="Name: " '{print prefix $1}' data.txt
এখানে prefix
একটি ভেরিয়েবল যা আউটপুটের আগে যুক্ত হয়।
awk '{total += $2; count += 1} END {print "Average:", total/count}' filename.txt
এখানে total
এবং count
দুটি ব্যবহারকারীর ভেরিয়েবল যা গড় নির্ণয়ে সহায়তা করে।
awk 'FNR==NR {threshold=$1; next} $2 > threshold {print $1}' threshold.txt data.txt
এখানে প্রথম ফাইল থেকে threshold
ভেরিয়েবলটি দ্বিতীয় ফাইলে ব্যবহার করা হয়েছে।
AWK তে User-Defined Variables একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ব্যবহারকারীদের তাদের নিজস্ব ভেরিয়েবল তৈরি এবং ব্যবহার করার সুযোগ দেয়। এটি ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণের কাজকে আরও সহজ করে। ব্যবহারকারীরা ভেরিয়েবল ব্যবহার করে গণনা, শর্তাধীন কার্যক্রম এবং জটিল লজিক তৈরি করতে সক্ষম হন, যা তাদের কাজকে আরও কার্যকর করে। AWK তে ভেরিয়েবলের ব্যবহার স্ক্রিপ্টগুলির শক্তি এবং নমনীয়তা বাড়ায়, এবং এটি ব্যবহারকারীদের তাদের কাজের জন্য উন্নত সলিউশন তৈরি করতে সাহায্য করে।
common.read_more